package com.zcg.blogger.dao;

import java.util.List;
import java.util.Map;

import com.zcg.blogger.model.Article;
import com.zcg.blogger.model.Comment;
import com.zcg.blogger.model.Message;
import com.zcg.blogger.model.Propose;
import com.zcg.blogger.model.User;

public interface UserDao {

	/**
	 * 插入一个用户
	 * 
	 * @param user
	 * @return
	 */
	public int insert(User user);

	/**
	 * 更新一个用户
	 * 
	 * @param user
	 * @return
	 */
	public int update(User user);

	/**
	 * 根据id删除一个用户
	 * 
	 * @param id
	 * @return
	 */
	public int delete(int id);

	/**
	 * 查询所有用户列表
	 * 
	 * @return
	 */
	public List<User> selectAll();

	/**
	 * 查询用户总数
	 * 
	 * @return
	 */
	public int countAll();

	/**
	 * 根据id查询用户信息
	 * 
	 * @param id
	 * @return
	 */
	public User findUserById(int id);

	/**
	 * 根据用户姓名查询用户个数
	 * 
	 * @param userName
	 * @return
	 */
	public boolean checkName(String userName);

	/**
	 * 查询数据库中存在对应用户名与密码的用户id
	 * 
	 * @param map
	 * @return
	 */
	public User check(Map map);

	/**
	 * 根据邮箱更改用户密码
	 * map内有id,新的密码
	 * @param map
	 */
	public void updatePasswordByEmail(Map map);
	
	/**
	 * 更改指定邮箱地址
	 * @param map
	 */
	public void updateEmailByEmail(Map map);

	/**
	 * 更改原密码和id更改用户密码
	 * map内有原密码,新密码,id
	 * @param map 
	 */
	void updatePasswordByPassword(Map map);
	
	/**
	 * 根据id更改用户头像
	 * @param map
	 */
	void updateAvatarById(Map map);
}
